﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;


namespace SplenetiX
{
    [Serializable]
    public class Sprite
    {
        protected Texture2D texture;
        protected Vector2 position;
        protected Rectangle rectangle;


        //Getters (et setters, si besoin) pour acceder aux attributs texture et position
        public Vector2 Position
        {
            get { return position; }
            set { this.position = value; }
        }
        public Texture2D Texture
        {
            get { return texture; }
            set { this.texture = value; }
        }
        public Rectangle Rectangle 
        { 
            get { return rectangle; }
            set { rectangle = value; }
        }

        //Constructeur
        public Sprite(Vector2 position)
        {
            this.position = position;
        }


        //Chargement de la texture
        public virtual void LoadContent(ContentManager content, string textureName)
        {
            texture = content.Load<Texture2D>(textureName);
            rectangle = new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height);
        }

        //Modification de la position du sprite
        public void UpdatePosition(Vector2 translation)
        {
            position += translation;
            rectangle.X = (int)position.X;
            rectangle.Y = (int)position.Y;
        }

        //Affichage du sprite
        public void Draw(SpriteBatch batch)
        {
            batch.Draw(texture, position, Color.White); //Le color.White est une valeur par défaut, signifie qu'aucune modif de couleur ne doit être appliquée à la texture
        }
    }
}
